package com.live.stamp.base.service;

import org.springframework.jdbc.core.JdbcTemplate;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

/**
 * @author cwd E-mail: wendong.cao@jsxfedu.com
 * @version 1
 * @date 2018/4/13 10:59
 */
public interface ISqlDao {
    JdbcTemplate getJdbcTemplate();

    int exec(String var1) throws SQLException;

    int exec(String var1, Object[] var2) throws SQLException;

    int exec(String var1, Map<String, Object> var2) throws SQLException;

    int exec(String var1, Object var2) throws SQLException;

    int[] execBatch(List<String> var1) throws SQLException;

    int[] execBatch(String var1, List<Object[]> var2) throws SQLException;

    int[] execBatch(String var1, Map<String, Object>[] var2) throws SQLException;

    int[] execBatch(String var1, Object[] var2) throws SQLException;

    int insert(String var1, Map<String, Object> var2) throws SQLException;

    int insert(Object var1) throws SQLException;

    int[] insertBatch(String var1, List<Map<String, Object>> var2) throws SQLException;

    int[] insertBatch(List<? extends Object> var1) throws SQLException;

    int delete(Class var1, String var2) throws SQLException;

    int delete(String var1, String var2) throws SQLException;

    int delete(String var1, String var2, Object[] var3) throws SQLException;

    int delete(String var1, String var2, Map<String, Object> var3) throws SQLException;

    int delete(String var1, String var2, Object var3) throws SQLException;

    int[] deleteBatch(String var1, List<String> var2) throws SQLException;

    int[] deleteBatch(String var1, String var2, Map<String, Object>[] var3) throws SQLException;

    int[] deleteBatch(String var1, String var2, Object[] var3) throws SQLException;

    int update(String var1, String var2, Map<String, Object> var3) throws SQLException;

    int update(String var1, String var2, Map<String, Object> var3, String var4, String var5) throws SQLException;

    int update(Object var1) throws SQLException;

    int update(String var1, String var2, Map<String, Object> var3, Object var4) throws SQLException;

    <T> T load(Class<T> var1, String var2) throws SQLException;

    <T> T selectOne(Class<T> var1, String var2) throws SQLException;

    <T> T selectOne(Class<T> var1, String var2, Object[] var3) throws SQLException;

    <T> T selectOne(Class<T> var1, String var2, Map<String, Object> var3) throws SQLException;

    <T> List<T> selectList(Class<T> var1, String var2) throws SQLException;

    <T> List<T> selectList(Class<T> var1, String var2, Object[] var3) throws SQLException;

    <T> List<T> selectList(Class<T> var1, String var2, Map<String, Object> var3) throws SQLException;

    int count(String var1) throws SQLException;

    int count(String var1, Object[] var2) throws SQLException;

    int count(String var1, Map<String, Object> var2) throws SQLException;

    <T> org.springframework.boot.container.core.common.PageVO<T> pageQuery(Class<T> var1, String var2, int var3, int var4) throws SQLException;

    <T> org.springframework.boot.container.core.common.PageVO<T> pageQuery(Class<T> var1, String var2, Object[] var3, int var4, int var5) throws SQLException;

    <T> org.springframework.boot.container.core.common.PageVO<T> pageQuery(Class<T> var1, String var2, Map<String, Object> var3, int var4, int var5) throws SQLException;

    String getSeq(String var1, String var2, String var3);

    String getUUID();

    Map<String, Object> converModelToMap(Object var1);

    <T> T converMapToModel(Class<T> var1, Map<String, Object> var2);

    <T> T converModelToDTO(Class<T> var1, Object var2);

    <T> T converDTOToModel(Class<T> var1, Object var2);

    boolean exists(String var1, Object[] var2);

    boolean exists(String var1, Map<String, Object> var2);

    boolean isSQLSafe(String var1);

    String checkSQLSafe(String var1) throws SQLException;
}
